// 【转译器（Transpilers）】

// 是一种可以将源码转译成另一种源码的特殊的软件。它可以解析（“阅读和理解”）现代代码，并使用旧的语法结构对其进行重写，进而使其也可以在旧的引擎中工作。
// 例如，在 ES2020 之前没有“空值合并运算符” ??。所以，如果访问者使用过时了的浏览器访问我们的网页，那么该浏览器可能就不明白 height = height ?? 100 这段代码的含义。
// 转译器会分析我们的代码，并将 height ?? 100 重写为 (height !== undefined && height !== null) ? height : 100。
// * Babel 是最著名的转译器之一。
// 现代项目构建系统，例如 webpack，提供了在每次代码更改时自动运行转译器的方法，因此很容易将代码转译集成到开发过程中。

// ***************************************************************************************************************************************************

// 【垫片（Polyfills）】

// 新的语言特性可能不仅包括语法结构和运算符，还可能包括内建函数。
// 在一些（非常过时的）JavaScript 引擎中没有 Math.trunc 函数，所以这样的代码会执行失败。
// 更新/添加新函数的脚本被称为“polyfill”。它“填补”了空白并添加了缺失的实现。
// * core js 支持了很多特性，允许只包含需要的特性。
